# coding:utf-8

import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMainWindow


class Calc(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.x = None 
        self.y = None
        self.result = None
        self.operator = None
        self.equal = None
        # self.clear = None#cvxv
        uic.loadUi('calc.ui',self)
        btns = [self.pushButton0,
                    self.pushButton1, 
                    self.pushButton2,
                    self.pushButton3,
                    self.pushButton4,
                    self.pushButton5,
                    self.pushButton6,
                    self.pushButton7, 
                    self.pushButton8,
                    self.pushButton9,
                    self.pushButton_clear,
                    self.pushButton_add,
                    self.pushButton_sub,
                    self.pushButton_div,
                    self.pushButton_mul,
                    self.pushButton_dot,
                    self.pushButton_equal
        ]
        map(lambda btn:btn.clicked.connect(self.click_on_button),btns)
    def calculate(self):
        '''
        如果x、y、operater不为空，计算结果。
        '''
        if self.x and self.y and self.operator:
           self.result = str(eval("%s%s%s"%(self.x,self.operator,self.y)))
           self.test_result.setText(self.result)
    def click_on_button(self):
        value = self.sender().text()
        if value in "0123456789.":
           print value
           try :
                if self.operator is None:
                    if  self.x is None:
                         self.x = value
                    else:
                          self.x +=value
                    self.text_result.setText(self.x)
                else:
                       if self.y is None:
                           self.y = value
                       else:
                            self.y +=value
                self.text_result.setText(self.y)
           except Exception, e:
                print e              
               


        elif value in "+-*/":
           print value 
           self.operator = value
           self.text_result.setText("")
        elif value == "=":
           print value
           self.calculate()
           self.test_result.setText(self.result)
        else:
            print "您点击的是C"
            self.clear()
        print "点击按钮后：",self.x,self.operator,self.y
    def clear(self):
        pass




        self.x = None
        self.y = None 
        self.result = None 
        self.operator = None
        self.text_result.setText("")
         


if __name__ == '__main__':
    app = QApplication(sys.argv)
    calc = Calc()
    calc.show() 
    calc.x = '25'
    calc.y = '2'
    calc.operator = '*'
    calc.calculate()
    app.exec_()
